home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 25
/
Cream of the Crop 25.iso
/
os2
/
kzr0597.zip
/
KZR.INF
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1997-05-01
|
56KB
|
1,294 lines
ΓòÉΓòÉΓòÉ 1. Allgemeines ΓòÉΓòÉΓòÉ
kzr.CMD
FБr die OS/2-Kommandozeile
Version vom 12.03.1997
kzr.CMD ist ein REXX-(k)ommando(z)eilen-(r)echner mit (fast) beliebiger
Genauigkeit fБr die folgenden Rechenoperationen:
Rechenoperation Kommandozeilen-
Operator
Addition (+)
Subtraktion (-)
Multiplikation (*)
Potenzierung mit ganzzahligem Exponenten (**)
Dividieren (:) oder (/)
Dividieren und den ganzzahligen Teil
des Ergebnisses ausgeben (divganz)
Dividieren und den Divisionsrest ausgeben (divrest)
In REXX kФnnen sowohl das Symbol % als auch der String // nicht als
Kommandozeilen-Parameter Бbernommen werden. Um die internen mathematischen
Operatoren % und // von der Kommandozeile aus verwenden zu kФnnen, war es
erforderlich, die "externen Operatoren" divganz fБr % und divrest fБr
// zu definieren.
ZusДtzlich zu den hier beschriebenen elementaren Rechenoperationen kФnnen auch
Mathematische Funktionen in die "aktuelle Rechenaufgabe" eingebunden werden.
kzr.CMD ist dann besonders praktisch, wenn man, ohne eines der groсen,
meistens grafischen Mathematik-Programme starten zu mБssen, auf der
OS/2-Kommandozeile ganz schnell eine Rechenaufgabe mit den oben erklДrten
Rechenoperationen und den verfБgbaren mathematischen Funktionen ausfБhren
mФchte.
Auсerdem beansprucht die "Kernfunktion" kzr.CMD weniger als 21 Kilobyte, die
kleine Version kzr0.CMD weniger als 2,8 Kilobyte und die "Hilfsfunktion"
MinNDA.CMD weniger als 6,1 Kilobyte auf der Festplatte. Hinzu kommen, je nach
Bedarf etwa 3 bis 6 Kilobyte (eine Ausnahme mit ca. 10 Kilobyte ) fБr jede
mathematische Funktion.
Allerdings werden zusДtzlich fast 250 Kilobyte fБr Daten in erweiterten
Attributen belegt.
kzr.CMD, kzr0.CMD, MinNDA.CMD sowie die REXX-Dateien fБr die mathematischen
Funktionen sind "Cardware". Ъber eine Nachricht (auch Fax oder e-mail), daс
der REXX-(k)ommando(z)eilen-(r)echner kzr.CMD verwendet wird, wБrde ich mich
freuen.
Diese Version vom MДrz 1997 soll die endgБltige Version von kzr.CMD und den
34 mathematischen Unterprogrammen bleiben.
Weitere Versionen sind nicht geplant, es sei denn, es wБrden mir Fehler
mitgeteilt werden oder ich wБrde selber Fehler bemerken.
Wenn allerdings der Wunsch bestehen sollte, weitere "externe" Funktionen, auch
weitere der sogenannten "hФheren Funktionen" verwenden zu kФnnen, so erbitte
ich eine diesbezБgliche Nachricht.
Nachrichten Бber (von mir noch nicht entdeckte) Fehler sind sehr willkommen.
!!! Achtung !!!
Nachdem ich darauf aufmerksam geworden war, daс es von dem Handbook of
Mathematical Functions [2] von Abramowitz und Stegun neuere Auflagen gibt und
daс in der neunten Auflage von 1970 [3] der Hauptwert der Funktion ArcCot(x)
einer neueren Definition entspricht, habe ich die Funktion ArcCot(x)
entsprechend geДndert.
Dies ist die einzige Оnderung gegenБber der kzr-Version vom MДrz 1997.
01.05.1997,
Hermann Mahr
Kafkastraсe 14
64291 Darmstadt
Telefon: 06151 373802
Telefax: 06151 373805 (von 09.00 Uhr bis 22.00 Uhr)
Internet: hmahr@ibm.net
ΓòÉΓòÉΓòÉ 2. Installation ΓòÉΓòÉΓòÉ
Die Installation des
(k)ommando(z)eilen(r)echners kzr.CMD
geschieht dadurch, daс man die Dateien
kzr.CMD, kzr0.CMD, MinNDA.CMD, und
kzr.INF
und alle mathematischen Funktionen
sin.CMD, cos.CMD, tan.CMD,
cot.CMD, u.s.w.
in ein gemeinsames Verzeichnis kopiert, das Бber den Pfad erreichbar ist.
Da die Ausgaben von kzr.CMD farbig erfolgen sollen, ist es erforderlich, in
der Config.SYS die Zeile
DEVICE=C:\OS2\MDOS\ANSI.SYS
zu setzen, sofern sie nicht schon vorhanden ist.
Die Anwendung des (k)ommando(z)eilen(r)echners kzr.CMD erfolgt natБrlich
von der OS/2-Kommandozeile aus.
ΓòÉΓòÉΓòÉ 3. Anwendung ΓòÉΓòÉΓòÉ
Die Anwendung von kzr.CMD ist auсerordentlich einfach, was in den folgenden
Unterabschnitten
Rein numerische Anwendung
und Anwendung mit Variablen
an Beispielen erlДutert wird.
Wichtige Anmerkung:
Die Symbole , $, ?, \, @, #, ' und " dБrfen auf der
OS/2-Kommandozeile in der Eingabe-Kette fБr kzr.CMD und kzr0.CMD nicht
verwendet werden, weil sie keine der in der arithmetischen Syntax erlaubten
Operatoren sind.
Geschieht dies doch, so wird eine diesbezБgliche Meldung angezeigt.
Die Symbole %, &, <, > und | sowie die Strings <<, >> und // kФnnen
auf der OS/2-Kommandozeile nur in bestimmten FДllen verwendet werden; nur
zeigt kzr.CMD bei Verletzung der einschlДgigen Regeln leider keine
diesbezБgliche Meldungen an.
ΓòÉΓòÉΓòÉ 3.1. Rein numerische Anwendung ΓòÉΓòÉΓòÉ
Man gebe als Beispiel folgendes auf der OS/2-Kommandozeile ein:
kzr 36, 2.5+(2.8E-2+2.4E-1*exp(-1.313))**2
oder (der besseren Ъbersichtlichkeit wegen mit Leerzeichen):
kzr 36, 2,5 * ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2
Diese Zeichenkette, bestehend aus Strings und einzelnen Symbolen, wird im
folgenden Text als Eingabe-Kette (EK) bezeichnet.
Nach dem EK-String kzr, gefolgt von mindestens 1 Leerzeichen, stellt die
positive ganze Zahl 36 die Anzahl der Dezimalstellen ein, mit denen intern
maximal gerechnet werden soll.
In der Eingabe-Kette
kzr 36, 2.5+(2.8E-2+2.4E-1*exp(-1.313))**2
oder auch
kzr 36, 2,5 * ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2
ist nach der ganzen Zahl 36 ein Komma -- eines oder mehrere Leerzeichen
dazwischen sind erlaubt -- unbedingt erforderlich, wobei im Anschluс an dieses
Komma mindestens 1 Leerzeichen folgen muс.
Wird nach dem EK-String kzr keine ganze Zahl, die grФсer als 1 sein muс,
eingetragen, so ist an dieser Stelle dennoch ein Komma mit mindesten 1
Leerzeichen davor und dahinter unbedingt erforderlich.
(In diesem Fall wird intern mit maximal 20 Dezimalstellen gerechnet.)
Die im Anschluс an die Teil-Kette kzr 36, oder kzr,
einzugegebende Teil-Kette
2.5+(2.8E-2+2.4E-1*exp(-1.313))**2
oder auch
2,5 * ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2
muс die gleiche Form haben, demzufolge auch nach den gleichen Syntax-Regeln
aufgebaut sein, wie eine entsprechende Anweisung in einer REXX-Stapel-Datei
aufgebaut sein mБсte.
VerstФсe gegen diese Syntax-Regeln bewirken Meldungen, die in den meisten
FДllen den Syntaxfehler auch erlДutern.
In den DezimalbrБchen 2.5, 2.8E-2, 2.4E-1 und -1.313 muс jeweils der im
angloamerikanischen Sprachraum Бbliche Dezimalpunkt verwendet werden. Ein
Komma dient in Funktions-Argumenten mit mehreren Variablen der Trennung dieser
Variablen, die ja ihrerseits wiederum DezimalbrБche sein kФnnen.
Bei den DezimalbrБchen ist es gleichgБltig, ob der Buchstabe "E" oder "e"
verwendet wird.
Die Eingabe der "aktuelle Rechenaufgabe" auf der OS/2-Kommandozeile hat
gegenБber einer Eingabe "innerhalb von kzr.CMD" den Vorteil, daс die
Eingabe-Kette mit einem Tastendruck wieder auf die OS/2-Kommandozeile gebracht
werden kann und so sehr leicht Eingabefehler beseitigt werden kФnnen oder daс
eine neue "aktuelle Rechenaufgabe" durch Оnderung einzelner Teile dieser
Eingabe-Kette formuliert werden kann.
Sonderfall:
Wenn man bei der unmittelbar vorangegangenen Berechnung schon ein
Ergebnis berechnet hat, kann man, nachdem man die vorherige
OS/2-Kommandozeilen-Eingabe per Tastendruck zurБckgeholt oder eine neue
"aktuelle Rechenaufgabe" eingegeben hat, durch Ersetzen einer bestimmten
Zahl durch die Variable z das Ergebnis der unmittelbar vorangegangenen
Berechnung in der neuen "aktuellen Rechenaufgabe" weiterverwenden. Aber
nur dann !
Hierzu ein Beispiel:
Das Ergebnis der unmittelbar vorangegangenen Berechnung der
"Rechenaufgabe" 45-40 durch die Eingabe-Kette
kzr , 45-40
ist
5.
Ruft man jetzt die Eingabe-Kette kzr , 45-40 der unmittelbar
vorangegangenen Rechenaufgabe auf die Бbliche Weise auf die
OS/2-Kommandozeile zurБck, so kann man einen oder auch mehrere
Zahlenwerte der Eingabe-Kette durch die Variable z ersetzen.
Somit wДre zum Beispiel die neue Eingabe-Kette
kzr , z-40 ,
deren Ergebnis wegen z = 5 gleich -35 ist.
Dieses Verfahren kann, auch in komplizierteren algebraischen
AusdrБcken, mehrmals nacheinander nacheinander angewendet werden.
ΓòÉΓòÉΓòÉ 3.2. Anwendung mit Variablen ΓòÉΓòÉΓòÉ
kzr.CMD bietet die MФglichkeit, eine auf der OS/2-Kommandozeile eingegebene
"Rechenaufgabe" zu lФsen, in der in algebraischen AusdrБcken und
Funktions-Argumenten nicht nur feste Zahlenwerte sondern auch eine Mischung aus
festen Zahlenwerten und maximal zwei verschiedenen Variablen x und y, denen
natБrlich jeweils ein Wert zugewiesen werden muс, vorkommen. Es kФnnen aber
auch nur eine oder zwei verschiedene Variable verwendet werden.
(Leider dБrfen nicht alle Buchstaben als Variablen-Namen verwendet werden;
x und y, u und v sowie p und q sind erlaubte Variablen-Namen.)
Hierzu zwei Beispiele:
1. Die Eingabe auf der OS/2-Kommandozeile
kzr , 1 + x/y ; x = 1, y = 2
formuliert die Rechenaufgabe
1 + x/y .
Das Semikolon ; trennt diese Rechenaufgabe von den Zuweisungen
x = 1 und y = 4,
ab, die ihrerseits durch ein Komma voneinander getrennt werden mБssen.
Hat man nun durch BetДtigung der Eingabetaste das Ergebnis 1.5 erhalten,
so kann man, nachdem man die vorherige Eingabe
kzr , 1 + x/y ; x = 1, y = 2
auf die OS/2-Kommandozeile zurБckgeholt hat, eine oder auch beide
Variablen Дndern.
Hierbei erleichtert es die Arbeit, daс sowohl die Variablen als auch der
Cursor am Ende der "zurБckgeholten Kommandozeilen-Eingabe" stehen und
daher das Positionieren des Cursors zur Оnderung der Wertes einer
Variablen schnell geschehen ist.
Wird jetzt die Variable y = 4 gesetzt, so erhДlt man das neue Ergebnis
1.25.
Nachdem man die so geДnderte Eingabe
kzr , 1 + x/y ; x = 1, y = 4
auf die OS/2-Kommandozeile zurБckgeholt hat, kann man auch in diesem
Beispiel das am Ende des Unter-Abschnittes "Rein numerische Anwendung"
als Sonderfall beschriebene Verfahren mit der Variablen z anwenden, um
das Ergebnis z = 1.25 in diese neue Rechenaufgabe einzubringen.
Man Дndert in der "zurБckgeholten Kommandozeilen-Eingabe"
kzr , 1 + x/y ; x = 1, y = 4
die Variable y in die Variable z und erhДlt mit der Eingabe
kzr , 1 + x/z ; x = 1, y = 4
das Ergebnis 1.8, da x = 1 und z = 1.25 ist.
Die Zuweisung y = 4 kann hier stehen bleiben; sie hat keine Wirkung
mehr, weil die Variable y in der Rechenaufgabe
kzr , 1 + x/z ; x = 1, y = 4
nicht mehr vorgekommt; man hДtte sie ebenso gut auch entfernen kФnnen,
ebenso auch das Komma im Anschluс an die Zuweisung x = 1.
2. Die etwas kompliziertere Eingabe auf der OS/2-Kommandozeile
kzr 48, sin(1 + x/y) + sqrt(x+y) * pot(y,x) ; x = 1.3, y =
.29E-1
formuliert die Rechenaufgabe
sin(1 + x/y) + sqrt(x+y) * pot(y,x),
die mit 48 Dezimalstellen gerechnet werden soll.
Das Semikolon ; trennt diese Rechenaufgabe von den Zuweisungen
x = 1.3 und y = .29E-1.
ΓòÉΓòÉΓòÉ 4. Mathematische Funktionen ΓòÉΓòÉΓòÉ
Die "Kernfunktion" kzr.CMD kann die folgenden "externen" mathematische
Funktionen verwenden, deren Argumente reelle Zahlen sein mБssen.
Trigonometrische Funktionen und Hyperbelfunktionen
Sinusfunktion sin(x)
Cosinusfunktion cos(x)
Tangensfunktion tan(x)
Cotangensfunktion cot(x)
Hyperbel-Sinusfunktion sinh(x)
Hyperbel-Cosinusfunktion cosh(x)
Hyperbel-Tangensfunktion tanh(x)
Hyperbel-Cotangensfunktion coth(x)
Bei den folgenden vieldeutigen inversen trigonometrischen und hyperbolischen
Funktionen, den Umkehrfunktionen der trigonometrische Funktionen und
Hyperbelfunktionen, wird stets der sogenannte Hauptwert berechnet.
Arcussinusfunktion arcsin(x)
Arcuscosinusfunktion arccos(x)
Arcustangensfunktion arctan(x)
Arcuscotangensfunktion arccot(x)
Areasinusfunktion arsinh(x)
Areacosinusfunktion arcosh(x)
Areatangensfunktion artanh(x)
Areacotangensfunktion arcoth(x)
Weitere wichtige elementare und hoehere mathematische Funktionen
Exponentialfunktion exp(x)
Potenzfunktion pot(x)
Funktion 2.Wurzel sqrt(x)
Funktion 3.Wurzel root3(x)
Logarithmus zur Basis e ln(x)
Logarithmus zur Basis 10 log(x)
Logarithmus zur Basis 2 ld(x)
FakultДtsfunktion n!(u)
FakultДtsfunktion n!!(u)
Gammafunktion ga(x)
Binomialkoeffizient bin(u,v)
Gauсsche Fehlerfunktion ш(x) phi(x)
Fehlerfunktion p_(x) = (1+ш(x))/2 p_(x)
Fehlerfunktion q_(x) = (1-ш(x))/2 q_(x)
Error-Funktion erf(x)
KomplementДre Error-Funktion erfc(x)
Ist das Ergebnis einer Funktion mit einem reellen Argument eine komplexe oder
rein imaginДre Zahl, wie zum Beispiel bei der Funktion sqrt(x) fБr Werte x <
0, so wird eine diesbezБgliche Meldung ausgegeben.
Ъber die mit diesen mathematischen Funktionen erzielbare maximale numerische
Genauigkeit siehe den Abschnitt ==> Numerische Genauigkeit
Literatur:
[1] I. S. GRADSHTEYN and I. M. RYZHIK
Table of Integrals, Series and Products
ACADEMIC PRESS New York and London 1965
[2] Milton Abramowitz & Irene A. Stegun
Handbook of Mathematical Functions
DOVER PUBLICATIONS, INC., NEW YORK 1965
[3] Milton Abramowitz & Irene A. Stegun
Handbook of Mathematical Functions
DOVER PUBLICATIONS, INC., NEW YORK 1970
[4] JEROME SPANIER and KEITH B. OLDHAM
AN ATLAS OF FUNCTIONS
HEMISPHERE PUBLISHING CORPORATION, Washington New York London 1987;
ebenfalls: Springer-Verlag Berlin
[5] I. N. BRONSTEIN und K. A. SEMENDJAJEW
TASCHENBUCH DER MATHEMATIK
Verlag Harri Deutsch, Thun und Frankfurt, 19. Auflage 1980
ΓòÉΓòÉΓòÉ 5. Mathematische Konstanten ΓòÉΓòÉΓòÉ
Die "Kernfunktion" kzr.CMD kann die folgenden elementaren mathematischen
Konstanten verwenden:
у [1] pi()
e e()
Literatur oder sonstige Quellen:
[1] John Brock
RXXMATH v1.3 -- Arbitrary Precision Math Functions for REXX 1996
Bei verschiedenen Internet-Adressen
ΓòÉΓòÉΓòÉ 6. Numerische Genauigkeit ΓòÉΓòÉΓòÉ
Ohne Verwendung der "externen" mathematischen Funktionen ist die
Rechengenauigkeit der "Kernfunktion" kzr.CMD fast beliebig hoch.
Dabei ist aber zu beachten, daс die Rechenzeit mit steigender Anzahl ND der
fБr den Rechenvorgang verwendeten Dezimalstellen Бberproportional zunimmt.
Man sollte daher sorgfДltig abschДtzen, wieviele Dezimalstellen fБr eine
bestimmte Aufgabe erforderlich sind.
Im Gegensatz dazu kФnnen einige der fБr kzr.CMD verfБgbaren mathematischen
Funktionen (==> Mathematische Funktionen) nur mit einer begrenzten numerischen
Genauigkeit berechnet werden.
Wichtig:
Bei Verwendung der "externen" mathematischen Funktionen wird bei
Ъberschreitung der Rechengenauigkeit durch ein akustisches Signal und
eine zusДtzliche Anzeige darauf aufmerksam gemacht. Auсerdem wird die von
der Eingabe-Kette (Definition folgt.) verlangte Gesamt-Rechengenauigkeit,
wenn sie hФher als die der aufgerufenen mathematischen Funktionen ist,
(mit Hilfe der von kzr.CMD aufgerufenen MinNDA.CMD) reduziert und von
derjenigen der aufgerufenen mathematischen Funktionen bestimmt, welche
die geringste maximale Rechengenauigkeit liefern kann.
Ein Beispiel:
Die Eingabe-Kette sei
kzr 56, 1/3 + phi(0.3)
Der Bruch 1/3 kФnnte mit der geforderten Gesamt-Rechengenauigkeit von
56 Dezimalstellen berechnet und ausgegeben werden.
Die Funktion phi(x) aber kann mit nur maximal 50 Dezimalstellen berechnet
werden.
Die Gesamt-Rechengenauigkeit der in dieser Eingabe-Kette aufgerufenen
mathematischen Funktionen entspricht also maximal 50 Dezimalstellen.
Daher wird auch das Ergebnis mit maximal 50 Dezimalstellen ausgegeben.
Es wird somit keine hФhere Gesamt-Rechengenauigkeit vorgetДuscht als
tatsДchlich vorhanden war.
Bitte folgendes beachten:
Die Schwierigkeit, bei einer Differenz zweier nahezu gleich groсer Zahlen
ein genБgend genaues Ergebnis zu erreichen, ist kein spezielles Problem
von kzr.CMD, sondern ein allgemeines Problem der numerischen Mathematik.
Ein Beispiel fБr die Schwierigkeit, bei einer Differenz zweier nahezu
gleich groсer Zahlen ein genБgend genaues Ergebnis zu erreichen, findet
man im Abschnitt
"Bekannte FehlermФglichkeiten".
ΓòÉΓòÉΓòÉ 7. Die kleine Version kzr0.CMD ΓòÉΓòÉΓòÉ
Die kleine Version kzr0.CMD
FБr die OS/2-Kommandozeile
FБr die kleine Version kzr0.CMD mit weniger als 2,8 Kilobyte, deren
RechenfДhigkeit fast die gleiche wie die von kzr.CMD ist, gilt folgendes:
1. Die interne Rechengenauigkeit ist mit 48 Dezimalstellen fest
eingestellt.
2. Das erste Komma auf der OS/2-Kommandozeile ist nicht erlaubt. Die
"aktuelle Rechenaufgabe" kann unmittelbar nach den, der Teil-Kette kzr0
folgenden Leerzeichen (mindestens eines) erfolgen.
3. Der Divisions-Operator : anstelle des Divisions-Operators / ist
nicht erlaubt.
4. Bei Eingabefehlern oder internen StФrungen, zum Beispiel das Erzeugen
zu groсer Zahlen, gibt lediglich REXX selbst seine bekannten
Error-Texte aus.
Auch kzr0.CMD verwendet die "Hilfsfunktion" MinNDA.CMD.
═══ 8. Bekannte FehlermФglichkeiten ═══
1. Wenn man aus irgendwelchen GrБnden eine laufende Rechenprozedur abbricht,
zum Beispiel mit der Tastenkombination Strg+C, wird die Datei
NDZahl.DAT nicht gelФscht, was bei einem normalen Ablauf von kzr.CMD
immer geschieht.
Die Datei NDZahl.DAT muс dann von Hand gelФscht werden, denn es kФnnte
sein, daс man (versehentlich ?) eine zu groсe Zahl ND fБr die Anzahl der
zu verwendenden Dezimalstellen eingegeben hatte, was die Geduld des
Anwenders so Бberforderte, daс er den Rechenvorgang abgebrochen hatte.
Ist die Datei NDZahl.DAT nicht gelФscht, so hat sie diese zu groсe Zahl
ND gespeichert und Бbergibt sie bei dem erneuten Rechenvorgang der dabei
aufgerufenen Funktion, was den erneuten Rechenvorgang wieder mit einer zu
hohen Zahl ND fБr die zu verwendenden Dezimalstellen belastet.
Zur Fehlerdiagnose hilft eine einfache Eingabe,
zum Beispiel:
kzr , 1+1
Diese einfache Rechenprozedur wird dann, ohne daс man eine bestimmte Zahl
ND fБr die Anzahl der zu verwendenden Dezimalstellen eingegeben hat, mit
der vorher (versehentlich ?) eingegebenen Zahl ND durchgefБhrt, was aber
ohne Zwischenfall geschieht. Da kzr.CMD in der Zeile oberhalb des
numerischen Ergebnisses 2 die verwendete Zahl ND anzeigt, kann man
erkennen, ob dort bei dieser Berechnung 1+1 eine unvernБnftig groсe Zahl
ND verwendet worden ist. (Diese Zahl ND ist dann in der Datei NDZahl.DAT
gespeichert.)
Ist dies der Fall, so muс man die Datei NDZahl.DAT lФschen, womit der
Fehler beseitigt ist.
2. Bei Rechenaufgaben, bei denen eine Differenz zweier nahezu gleich groсer
Zahlen auftritt, ist besondere Vorsicht geboten !
Beispiel:
Die bekannte Funktional-Beziehung
cosh¤(x) - sinh¤(x) = 1
kann, wenn man sie zum Beispiel als die aktuelle Rechenaufgabe mit der
Eingabe-Kette
kzr 48, cosh(x)**2 - sinh(x)**2; x=3
auf der OS/2-Kommandozeile startet, je nach GrФсe der Variablen x
ungenaue, also von der ganzen Zahl 1 mehr oder weniger abweichende
Ergebnisse liefern.
Dies liegt daran, daс die Funktionswerte
cosh(x) = (exp(+x) + exp(-x))/2
und
sinh(x) = (exp(+x) - exp(-x))/2
sich umso weniger von einander unterscheiden, je grФсer die Variable x
ist.
Man kann durch ErhФhen der Zahl ND, welche als die erste ganze Zahl
unmittelbar nach dem String kzr folgt und die Zahl der fБr die
Berechnung zu verwendenden Dezimalstellen festlegt, vergrФсern und so die
numerische Genauigkeit erhФhen.
Da aber die Zahl ND der zu verwendenden Dezimalstellen sich nicht
beliebig vergrФсern lДсt und Бberdies die Rechenzeit Бberprortional zur
VergrФсerung von ND ansteigen wБrde, ist die hier als Beispiel gewДhlte
Funktional-Beziehung nicht geeignet, zum Beispiel die Richtigkeit der
numerischen Ergebnisse der Funktionen cosh(x) und sinh(x) zu
БberprБfen.
(Ein zufДllig richtiges Ergebnis, nДmlich die ganze Zahl 1 bei einer
solchen PrБfung, wДre notwendig aber nicht hinreichend.)
ΓòÉΓòÉΓòÉ 9. Anhang ΓòÉΓòÉΓòÉ
Im Anhang sind die einzelnen mathematischen Funktionen, die von kzr.CMD
verwendet werden kФnnen, in individuellen Unterabschnitten erklДrt.
ΓòÉΓòÉΓòÉ 9.1. Sinusfunktion ΓòÉΓòÉΓòÉ
Die Sinusfunktion sin(x)
kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.2. Cosinusfunktion ΓòÉΓòÉΓòÉ
Die Cosinusfunktion cos(x)
kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.3. Tangensfunktion ΓòÉΓòÉΓòÉ
Die Tangensfunktion tan(x)
kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.4. Cotangensfunktion ΓòÉΓòÉΓòÉ
Die Cotangensfunktion cot(x)
kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.5. Hyperbel-Sinusfunktion ΓòÉΓòÉΓòÉ
Die Hyperbel-Sinusfunktion sinh(x)
ist definiert als
exp(+x) - exp(-x)
sinh(x) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ .
2
Sie kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.6. Hyperbel-Cosinusfunktion ΓòÉΓòÉΓòÉ
Die Hyperbel-Cosinusfunktion cosh(x)
ist definiert als
exp(+x) + exp(-x)
cosh(x) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ .
2
Sie kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.7. Hyperbel-Tangensfunktion ΓòÉΓòÉΓòÉ
Die Hyperbel-Tangensfunktion tanh(x)
ist definiert als
exp(+x) - exp(-x)
tanh(x) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ .
exp(+x) + exp(-x)
Sie kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.8. Hyperbel-Cotangensfunktion ΓòÉΓòÉΓòÉ
Die Hyperbel-Cotangensfunktion coth(x)
ist definiert als
exp(+x) + exp(-x)
coth(x) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ .
exp(+x) - exp(-x)
Sie kann im Bereich |x| < 1.0E+8
- der Wert x=0 ist aber nicht erlaubt -
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.9. Arcus-Sinusfunktion ΓòÉΓòÉΓòÉ
Der Hauptwert der Funktion arcsin(x)
kann im Bereich |x| є 1
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.10. Arcus-Cosinusfunktion ΓòÉΓòÉΓòÉ
Der Hauptwert der Funktion arccos(x)
kann im Bereich |x| є 1
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.11. Arcus-Tangensfunktion ΓòÉΓòÉΓòÉ
Der Hauptwert der Funktion arctan(x)
kann im Bereich |x| < ь
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.12. Arcus-Cotangensfunktion ΓòÉΓòÉΓòÉ
Der Hauptwert der Funktion arccot(x)
kann in den Bereichen
-ь < x < 0 und 0 < x +ь
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
Anmerkung:
Der Hauptwert der Funktion arccot(x)
geht fБr x ─> -ь gegen -0
und fБr x ─> -0 gegen -у/2.
An der Stelle x = 0
ist die Funktion arccot(x)
- und daher auch deren Hauptwert -
nicht erklДrt.
Der Hauptwert der Funktion arccot(x)
geht fБr x ─> +0 gegen +у/2
und fБr x ─> +ь gegen +0.
Diese Definion des Hauptwertes
der Funktion arccot(x) ist offenbar
die jБngste Festlegung [3].
In der Literatur findet man
gelegentlich eine andere Definition,
zum Beispiel in [2].
ΓòÉΓòÉΓòÉ 9.13. Area-Sinusfunktion ΓòÉΓòÉΓòÉ
Der Hauptwert der Funktion arsinh(x)
kann im Bereich -ь < x < +ь
mit fast beliebiger Genauigkeit
(ND <= 400) berechnet werden.
ΓòÉΓòÉΓòÉ 9.14. Area-Cosinusfunktion ΓòÉΓòÉΓòÉ
Der Hauptwert der Funktion arcosh(x)
kann im Bereich x Є 1
mit fast beliebiger Genauigkeit
(ND <= 400) berechnet werden.
ΓòÉΓòÉΓòÉ 9.15. Area-Tangensfunktion ΓòÉΓòÉΓòÉ
Der Hauptwert der Funktion artanh(x)
kann im Bereich |x| < 1
mit fast beliebiger Genauigkeit
(ND <= 400) berechnet werden.
ΓòÉΓòÉΓòÉ 9.16. Area-Cotangensfunktion ΓòÉΓòÉΓòÉ
Der Hauptwert der Funktion arcoth(x)
kann im Bereich |x| > 1
mit fast beliebiger Genauigkeit
(ND <= 400) berechnet werden.
ΓòÉΓòÉΓòÉ 9.17. Exponentialfunktion ΓòÉΓòÉΓòÉ
Die Exponentialfunktion exp(x)
kann im Bereich |x| < 1.0E+9
mit fast beliebiger Genauigkeit
berechnet werden.
ΓòÉΓòÉΓòÉ 9.18. Potenzfunktion ΓòÉΓòÉΓòÉ
Die Potenz-Funktion pot(x,y)
-- x hoch y --
kann im Bereich |y*ln(|x|)| < 1.0E+9
mit einer Genauigkeit
von maximal 400
Dezimalstellen berechnet werden.
Allerdings muс fБr x < 0
die Variable y ganzzahlig sein, weil
sonst pot(x,y) keine reelle LФsung hat.
ΓòÉΓòÉΓòÉ 9.19. Funktion 2. Wurzel ΓòÉΓòÉΓòÉ
Die zweite Wurzel sqrt(x)
kann im Bereich
1.0E-10000 < x < 1.0E+10000
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.20. Funktion 3. Wurzel ΓòÉΓòÉΓòÉ
Die dritte Wurzel root3(x)
kann im Bereich
1.0E-10000 < x < 1.0E+10000
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.21. Logarithmus zur Basis e ΓòÉΓòÉΓòÉ
Der natБrliche Logarithmus ln(x)
kann im Bereich
1.0E-100000 < x < 1.0E+100000
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.22. Logarithmus zur Basis 10 ΓòÉΓòÉΓòÉ
Der Logarithnus zur Basis 10: log(x)
kann im Bereich
1.0E-100000 < x < 1.0E+100000
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ 9.23. Logarithmus zur Basis 2 ΓòÉΓòÉΓòÉ
Der Logarithmus zur Basis 2: ld(x)
kann im Bereich
1.0E-100000 < x < 1.0E+100000
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
═══ 9.24. FakultДtsfunktion n! ═══
Die FakultДtsfunktion n!(u)
kann im Bereiche 0 < u <= 6000
fБr ganzzahlige Werte von u
berechnet werden.
FБr u > 6000
werden die Rechenzeiten zu groс.
═══ 9.25. FakultДtsfunktion n!! ═══
Die FakultДtsfunktion n!!(u)
kann im Bereiche 0 < u <= 6000
fБr ganzzahlige Werte von u berechnet werden.
FБr u > 6000 werden die Rechenzeiten zu groс.
ΓòÉΓòÉΓòÉ 9.26. Gammafunktion ΓòÉΓòÉΓòÉ
Die Gamma-Funktion т(x)=ga(x) ist definiert als
FБr x=0 und negative ganzzahlige Werte von x
hat die Gammafunktion Pole und ist dort nicht definiert.
Sie kann im Bereich -3000 < x < +3000 mit einer Genauigkeit
von maximal 50 Dezimalstellen berechet werden.
FБr |x| > 3000 werden die Rechenzeiten zu groс.
ΓòÉΓòÉΓòÉ 9.27. Binomialkoeffizient ΓòÉΓòÉΓòÉ
FБr einen Binomialkoeffizienten
u!
bin(u,v) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
v!(u-v)!
mБssen die Bereiche 0 < u <= 2000
und 0 < v <= u
eingehalten werden.
Die Variablen u und v
mБssen ganze Zahlen sein.
═══ 9.28. Gauсsche Fehlerfunktion ═══
Die Gauсsche Fehlerfunktion ш(x)=phi(x)
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechnet werden.
ΓòÉΓòÉΓòÉ 9.29. Fehlerfunktion ΓòÉΓòÉΓòÉ
Die Fehlerfunktion p_(x)=(1+ш(x))/2
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
Zur Definition von ш(x)
siehe die ErlДuterunge zu phi(x)
ΓòÉΓòÉΓòÉ 9.30. Fehlerfunktion ΓòÉΓòÉΓòÉ
Die Fehlerfunktion q_(x)=(1-ш(x))/2
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
Zur Definition von ш(x)
siehe die ErlДuterunge zu phi(x)
ΓòÉΓòÉΓòÉ 9.31. Error-Funktion ΓòÉΓòÉΓòÉ
Die Error-Funktion erf(x)
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
═══ 9.32. KomplementДre Error-Funktion ═══
Die komplementДre Error-Funktion erfc(x)
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
ΓòÉΓòÉΓòÉ 9.33. pi() ΓòÉΓòÉΓòÉ
Die Konstante у = pi() = 3.14159....
kann mit fast beliebiger Genauigkeit
berechet werden.
ΓòÉΓòÉΓòÉ 9.34. e() ΓòÉΓòÉΓòÉ
Die Konstante e = e() = 2.71828.....
kann mit fast beliebiger Genauigkeit
berechet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Sinusfunktion sin(x)
kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Cosinusfunktion cos(x)
kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Tangensfunktion tan(x)
kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Cotangensfunktion cot(x)
kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Hyperbel-Sinusfunktion sinh(x)
ist definiert als
exp(+x) - exp(-x)
sinh(x) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ .
2
Sie kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Hyperbel-Cosinusfunktion cosh(x)
ist definiert als
exp(+x) + exp(-x)
cosh(x) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ .
2
Sie kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Hyperbel-Tangensfunktion tanh(x)
ist definiert als
exp(+x) - exp(-x)
tanh(x) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ .
exp(+x) + exp(-x)
Sie kann im Bereich |x| < 1.0E+8
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Hyperbel-Cotangensfunktion coth(x)
ist definiert als
exp(+x) + exp(-x)
coth(x) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ .
exp(+x) - exp(-x)
Sie kann im Bereich |x| < 1.0E+8
-- der Wert x=0 ist aber nicht erlaubt --
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Funktion arcsin(x)
kann im Bereich |x| є 1
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Funktion arccos(x)
kann im Bereich |x| є 1
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Funktion arctan(x)
kann im Bereich |x| < ь
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Funktion arccot(x)
kann im Bereich |x| < ь
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Funktion arsinh(x)
kann im Bereich -ь < x < +ь
mit fast beliebiger Genauigkeit
(ND <= 400) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Funktion arcosh(x)
kann im Bereich x Є 1
mit fast beliebiger Genauigkeit
(ND <= 400) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Funktion artanh(x)
kann im Bereich |x| < 1
mit fast beliebiger Genauigkeit
(ND <= 400) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Funktion arcoth(x)
kann im Bereich |x| > 1
mit fast beliebiger Genauigkeit
(ND <= 400) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Exponentialfunktion exp(x)
kann im Bereich |x| < 1.0E+9
mit fast beliebiger Genauigkeit
berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Potenz-Funktion pot(x,y)
-- x hoch y --
kann im Bereich |y*ln(|x|)| < 1.0E+9
mit einer Genauigkeit
von maximal 400
Dezimalstellen berechnet werden.
Allerdings muс fБr x < 0
die Variable y ganzzahlig sein, weil
sonst pot(x,y) keine reelle LФsung hat.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die zweite Wurzel sqrt(x)
kann im Bereich
1.0E-10000 < x < 1.0E+10000
berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die dritte Wurzel root3(x)
kann im Bereich
1.0E-10000 < x < 1.0E+10000
berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Der natБrliche Logarithmus ln(x)
kann im Bereich
1.0E-100000 < x < 1.0E+100000
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Der Logarithnus zur Basis 10: log(x)
kann im Bereich
1.0E-100000 < x < 1.0E+100000
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Der Logarithmus zur Basis 2: ld(x)
kann im Bereich
1.0E-100000 < x < 1.0E+100000
mit fast beliebiger Genauigkeit
(ND <= 450) berechnet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die FakultДtsfunktion n!(n)
kann im Bereiche 0 < n <= 6000
berechnet werden.
FБr x > 6000
werden die Rechenzeiten zu groс.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die FakultДtsfunktion n!!(n)
kann im Bereiche 0 < n <= 6000 berechnet werden.
FБr x > 6000 werden die Rechenzeiten zu groс.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Gamma-Funktion т(x)=ga(x) ist definiert als
FБr x=0 und negative ganzzahlige Werte von x
hat die Gammafunktion Pole und ist dort nicht definiert.
Sie kann im Bereich -3000 < x < +3000 mit einer Genauigkeit
von maximal 50 Dezimalstellen berechet werden.
FБr |x| > 3000 werden die Rechenzeiten zu groс.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
FБr einen Binomialkoeffizienten
n!
bin(n,m) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
m!(n-m)!
mБssen die Bereiche 0 < n <= 2000
und 0 < m <= n
eingehalten werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Gauсsche Fehlerfunktion ш(x)=phi(x)
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Fehlerfunktion p_(x)=(1+ш(x))/2
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
Zur Definition von ш(x)
siehe die ErlДuterunge zu phi(x)
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Fehlerfunktion q_(x)=(1-ш(x))/2
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
Zur Definition von ш(x)
siehe die ErlДuterunge zu phi(x)
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Error-Funktion erf(x)
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die komplementДre Error-Funktion erfc(x)
kann im Bereich -ь < x < +ь
mit einer Genauigkeit
von maximal 50 Dezimalstellen
berechet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Konstante у = pi()
kann mit fast beliebiger Genauigkeit
berechet werden.
ΓòÉΓòÉΓòÉ <hidden> ΓòÉΓòÉΓòÉ
Die Konstante e = e()
kann mit fast beliebiger Genauigkeit
berechet werden.